Portable microcomputers came into existence soon after the popular acceptance of desktop models. Early models were basically compactly packaged versions of desktop personal computers and included most of the peripheral device capabilities of their larger counterparts. Manufacturers soon discovered a large market for much smaller and lighter models even though some peripheral device capability had to be left out. These laptop and smaller variants called notebook computers have become the fastest growing segment of the computer market.
Advances in miniaturization of peripheral devices such as disk drives and phone modems has allowed manufacturers to add some of them into recent notebook computer models, thus restoring many capabilities associated with desktop computers. Despite these advances, a notebook computer incorporating both hard and floppy disk drives is considered by many to be too heavy for many purposes. Limited cable attachment space on the case and limited circuit board space have precluded the incorporation of ports for a full complement of external attachments readily available to desktop computers.
Some manufacturers have attempted to overcome these limitations by incorporating an external docking connector into the notebook computer's internal input/output (I/O) bus. Such a connector is designed to mate with a complementary connector in a larger desktop-style case, known typically as a docking box. Such a docking box may feature all or most of the peripheral device capabilities of a normal desktop computer. Because of the high-frequency, low-power electrical signals that must be passed through the docking connector, the docking connection must be vibration-free and shielded against radio-frequency emissions. When locked into its docking box a notebook computer gains most of the capabilities of a regular desktop computer, but at the cost of a significant amount of prime desktop real estate. A user may also have to put up with several interconnect cables as well as a power cord snaking across the desk.
An alternative method of expanding the peripheral device capabilities of both notebook and desktop computers is connection of external devices to a parallel port connected in turn to the internal I/O bus of the computer. PIO port devices have traditionally offered a simple and economical method for rapidly moving data between a computer and remote devices. Parallel port devices may be either bidirectional or unidirectional. The simplest form of PIO port consists of parallel data lines and addressable buffer circuits. Addition of control lines and state control circuitry enhances a parallel port device's capabilities.
Since their inception microcomputers have made extensive use of PIO ports as interfaces to control panel switches and indicator lights, keyboard switch matrixes, and external devices. The original personal computer introduced by International Business Machines (IBM) included a specialized parallel port on the monochrome display adapter expansion board for interfacing to a parallel interface printer. A separate printer adapter expansion board offered a similar parallel port, differing primarily in the I/O addresses of the port. The control lines and state control circuitry of the IBM printer parallel port were designed for compatibility with a subset of the widely used Centronics parallel printer interface.
Printers being receive-only devices, IBM designed its PIO port as a unidirectional output-only data port. The PIO port has signal connections for eight data lines (a Byte), four control lines going to the printer and five status lines coming from the printer. Prior art inventions made it possible to perform rudimentary bidirectional data transfers through the PIO port by cross-connecting four data lines (a Nibble) and the strobe control line with the five status lines.
IBM enhanced the PIO port for the PS/2.TM. line of computers to allow full bidirectional byte transfers using the normal subset of Centronics connections while maintaining compatibility with the PIO port. The same, or functionally similar, enhancements were adopted by many vendors of IBM-clone and IBM-compatible computer equipment. In current art the PS/2.TM. PIO port, known by IBM as the Type 1 parallel port, has become the standard parallel port (SPP). Special control routines are required to utilize the bidirectional capability of the SPP. A number of devices requiring high data transfer rates have been modified to interface through the bidirectional SPP, such as magnetic tape drives, magnetic and optical disk drives, and even Small Computer System Interconnect (SCSI) bus controllers. In a later version, designated by IBM the Type 3 parallel port, 3 additional addressable control registers were added to the 3 registers in the SPP. The Type 3 parallel port has a capability to perform direct memory access (DMA) transfers through the SPP allowing a maximum parallel port throughput of approximately 2 megabytes per second.
Attempts to interface network adapters through the SPP, which is particularly desirable for notebook computers, revealed a need for passing both address and data bytes through the SPP with minimal latency. It was also found desirable to allow the external device to impose wait states on the CPU when it cannot immediately respond to an I/O request. A consortium of manufacturers led by Intel and Xircom created a specification for an enhanced parallel port (EPP) to meet this need. The EPP design provides for more versatile automatic use of the port control and status lines allowing the multiplexing of address and data bytes through the port, and synchronizing the computer processor with the external device controller during I/O instruction execution, when operating in its Fast Mode.
EPP, in Fast Mode, allows the CPU to read or write the contents of an addressable register in an external device controller with as few as two CPU instructions. EPP provides some of the capabilities of a mini-expansion bus multiplexed through the parallel port. However, EPP Fast Mode capabilities are only obtainable with the intervention of special CPU control routines. EPP Fast Mode provides only one interrupt signal path from the external devices and EPP provides only one interrupt request (IRQ) level on the expansion bus. These limitations have generally restricted interfacing of multiple external peripheral devices through a PIO port to devices that interface with an external Small Computer Systems Interconnect (SCSI) controller, which is connected through a PIO port. Such an external SCSI controller requires additional special CPU control routines, adds significant cost and in some cases adds additional power drain on battery powered computers.
What is needed is a way to connect a computer I/O bus to an external expansion bus by means of a tether rather than a docking mechanism, such as a PIO port and complimentary external device capable of multiplexing and demultiplexing a sufficiently complete range of expansion bus handshake signals through a Centronics-type printer cable to allow control of a subset of an ISA I/O bus. Such a parallel port would preferably have a default mode that is compatible with the SPP and a configurable mode that is compatible with EPP operation. Hardware devices in such PIO port devices should automatically and transparently translate and multiplex over the PIO port data lines, between the host I/O bus and a compatible external expansion bus controller, I/O addresses and IRQ's for configured peripheral devices.